import java.util.*;
/**
 * Implementierung der BusinessLayer Klasse Raum, implementiert das Interface BLCRUD für Create, Read, Update und Delete Operationen auf einer Aufzählung.
 * 
 * @author Kai Gutzeit
 * @version 13.12.2014
 */
public class BLRaum implements BL_CRUD<Raum>
{
    // Instanzvariable welche die Referenz der Geschäftsobjekte in einer Aufzählung beinhaltet.
    private List<Raum> raeume;

    /**
     * Konstruktormethode welche die Referenz zu den vorhandene Räumen übergeben bekommt.
     * 
     * @param  raeume Eine Referenz zur Aufzählung der verfügbaren Räume.
     */
    public BLRaum(List<Raum> iRaeume)
    {
        raeume = iRaeume;
    }

    /**
     * Implementierung der Create Methode aus dem Interface BL_CRUD
     * 
     * @param  iBusinessObject Übergibt die Referenz zu einem Raum, welche der Referenz der privaten Variable raeum hinzugefügt wird.
     * 
     * @return Der erstellte Raum mit einer eindeutig erzeugten UUID als ID.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Raum Create(Raum iBusinessObject) throws IllegalArgumentException{
        return null;
    }
    
     /**
     * Die Read Methode erlaubt es anhand eines eindeutigen Schlüssel einen Raum aus der Aufzählung raeume zu erhalten. 
     * 
     * @param  id  Es wird eine eindeutige id vom Typ UUID übergeben um den Raum eindeutig identifizierbar zu machen.
     * 
     * @return Das zu lesende Objekt vom Typ Raum.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Raum Read(UUID id) throws Exception{
        return null;
    }
    
     /**
     * Die Update Methode übermittelt ein komplettes Objekt vom Typ Raum und sorgt für das aktualisieren des jeweiligen Objektes in der privaten Aufzählung raeume.
     * 
     * @param  iBusinessObject Es wird das zu aktualisierende Objekt vom Typ Raum übergeben.
     * 
     * @return Ein boolscher Wert für den Erfolg oder Nichterfolg der Update-Operation.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Boolean Update(Raum iBusinessObject) throws Exception{
        return null;
    }
    
     /**
     * Die Delete Methode bekommmt eine id als UUID Objekt übergeben, welches das Objekt vom Typ Raum aus einer Aufzählung eindeutig identifiziert und anschließend entfernt.
     * 
     * @param  UUID id Es wird eine eindeutige id vom Typ UUID übergeben.
     * 
     * @return Ein boolscher Wert für den Erfolg oder Nichterfolg der Delete-Operation.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Boolean Delete(UUID id) throws Exception{
        return null;
    }
}
